This invention relates generally to computer software, and more specifically to a system and method for implementing a directory system in a distributed computer environment.
Personal computers or workstations may be linked in a computer network to facilitate the sharing of data, applications, files, and other resources. One common type of computer network is a client/server network, where some computers act as servers and others as clients. In a client/server network, the sharing of resources is accomplished through the use of one or more servers. Each server includes a processing unit that is dedicated to managing centralized resources and to sharing these resources with other servers and/or various personal computers and workstations, which are known as the clients of the server.
Directories and directory services are often provided to enable an environment for an entry of a particular resource. One example of a directory service is Novell Directory Services (xe2x80x9cNDSxe2x80x9d) for Novell Netware networks, as provided by Novell, Inc. of Provo, Utah. NDS is an X.500 directory system for hierarchical directories, and implements a logical tree-structure view of all resources on the network so that clients can access them without knowing where they are physically located.
For database applications where computers are widely distributed (e.g., geographically), replication provides an efficient way for distributed systems to access current information. Replication enables many computers or computer applications to work with their own local, current copy, or replica, of one or more entries. Since a widely distributed network may rely on many network links for connecting several servers and clients, a replica can provide an efficient method for storing specific copies of the entries.
However, replicas can often be very difficult to establish, the level of difficulty being directly proportional with the expanse of the network distribution. This can be particularly time consuming for an administrator or other entity(s) who determine the structure of the tree and maintain the database. For example, a company may have a distributed network that utilizes servers in many different countries on different continents. A distributed database on such a network may have entries on literally thousands of different servers. In the present example, the administrator may desire to create a replica of specific entries in the database in a specific replica server. To create the replica from this exemplary distributed directory, many different servers must be accessed and many network connections must be utilized. Administratively, this may be an extremely time consuming process. Furthermore, one or more network connections or servers may be down at any point in time, thereby extending the time and effort required.
It is desired to provide a simple mechanism for retrieving entries in a distributed network.
It is also desired to reduce administrative complexity, including accommodating any network servers or connections that may be down.
In response to these and other problems, an improved system, method and database program are provided for automatically creating a replica of data distributed throughout a database. In one embodiment, the method identifies an action to be performed on the data, and may also identify a subset of objects, such as attributes of the data, for receiving the action. A scope of the distributed database is determined, including a root of the database for accessing all of the data. With this information, a vector is created and provided to the root. As a result, the root can recursively inherit the vector down the distributed database to one or more branches until all of the data is accessed, so that the action can be performed on all the data.
In another embodiment, the database program receives a vector into a root of the database, the vector identifying an action to be performed. The database program then performs the action on data in the root, if any of the data so exists, and determines if a branch of the root is to be accessed. If a branch is to be accessed, the database program inherits the vector down to the branch and designates the branch as a new root. The database program can then repeat the previous instructions on the new root until no more new roots are designated.
There are various reasons why a branch may not be accessed. For one, a network connection to a server for the branch may be down. Also, the server itself may be down. Further, there may be no more branches to access. For whatever reason a branch may not be accessed, the database program handles this reason appropriately and automatically, without requiring extensive intervention from a network administrator.
An advantage of the present invention is that the virtual partition vector does not need to view the entire tree.
Another advantage of the present invention is that the administrator or other entity does not have to visit every partition of the tree to create the replica on the replica server.
Yet another advantage is that once the administrator sends the virtual partition vector to the root, existing directory services can take over operation.
These and other advantages can be readily seen by further examination of the attached figures and the following description.